菜虫学电脑
您当前的位置:首页 > FreeBSD

对话 UNIX: 探察管道

来源:  评论: 条  收藏本文  去论坛

本文 Tags:进程 数据 进度 消费者 步骤

  UNIX 中最巧妙最强大的功能之一是 shell。shell 比 GUI 高效得多,还可以通过编写脚本自动执行许多任务。更好的是,管道操作符可以在命令行上组装出专门的程序。管道按次序把命令连接起来,前一个命令的输出作为后一个命令的输入。

  常用缩写词

  GUI:Graphical user interface

  但是,管道有一个大缺点:它像是黑箱子。如果把命令连接在一起,那么只有序列中最后一个命令生成的输出能够反映管道的进度。当然,可以在序列中插入 tee,还可以用 tail 查看输出文件的增长,但是这些解决方案都不完善,会把多个阶段的标准输出 (stdout) 和标准错误 (stderr) 混在一起。另外,这两个解决方案比较粗糙,很可能无法表明每个步骤所需的计算量。

  当然,可以把复杂的序列分解为多个单独的步骤,每个步骤有自己的中间输出文件。的确,如果希望检查每个步骤的结果,分解是最理想的方法。编写一个脚本,为每个步骤生成一个数据文件,在每对步骤之间使用数据文件作为输入,以最后的文件作为最终结果。但是,这种做法浪费了命令行的灵活性。

  我们需要的是一个可以嵌入命令行中的进度度量工具。理想情况下,可以对每个步骤重复使用这个工具,它应该是开放源码的,可以移植到 Linux® 和 Mac OS X 等多种 UNIX 变体上。

  好了,不必再盼望了:Pipe Viewer (pv) 就是这样的工具。它由系统管理员 Andrew Wood 编写,经过其他许多开发人员改进,前后历时四年。它提供了探察命令行管道的能力。它的 项目页面 上说,pv “可以插入管道中两个进程之间,从而显示传递数据的速度、已经花费的时间以及剩余时间。” 更引人注目的是,可以在同一个命令行中插入多个 pv 实例以显示相对吞吐量。


 

 

我要分享到: 新浪|微博新浪微博 百度|Hi空间百度空间 分享到QQ空间QQ空间 开心网开心网 校内|人人网人人网 豆瓣网豆瓣网 搜狐|白社会搜狐白社会 QQ微博

 

   最新图文资讯
   相关文章
发表评论 共有条评论  [ 查看全部 ]
用户名: 密码: 匿名发表
验证码:     
 
推荐文章
[更新截图][下载]iPhone QQ2011公测版发布:支持挂Q和收图
[更新截图][下载]iPho
Ubuntu 8.04 升级到 Ubuntu 8.10 初体验(图文)
Ubuntu 8.04 升级到 U
QQ2011新功能抢先体验:支持多帐号同时登录
QQ2011新功能抢先体验
剑指新浪 腾讯宣称用户转发微博可加速QQ等级
剑指新浪 腾讯宣称用
栏目更新
栏目热门
网站首页 - 广告服务 - 友情链接 - 联系我们 - 请来留言 - 网站地图 - WAP - -